#!/bin/bash
#
# Este script actualiza alguna de las zonas directas...
#
# Argumentos...
#   NUMERO_PTR NOMBRE ZONA_INVERSA  [gestion|docencia|wifi] [delete|add]
#

if [ "" = "$5" ]
then
   echo "ERROR: Numero de argumentos incorrecto"
   echo " updateDNS-inverse  <NUMERO_PTR> <NOMBRE> <ZONA_INVERSA>  [gestion|docencia|wifi] [delete|add]"
   exit 2
fi

# Para temporales...
tmpFile=/tmp/adm_update_iDNS_$$_$RANDOM

# Para mantener la sincronizacion con CfEngine
dirOrigFiles=/etc/bind/db.zonas/originales
dirDestFiles=/var/lib/sync2cfengine/etc_bind/db.zonas/originales

# Comprobar si estan los ficheros de sincronizacion...
[ ! -e $dirDestFiles/db.$3 ] && /bin/cp -f $dirOrigFiles/db.$3  $dirDestFiles/db.$3  

# si esta la entrada en los ficheros, lo primero es borrarla
if grep -q "^$1 " $dirDestFiles/db.$3
then
   # Sip, esta la entrada... la borramos...
   grep -v "^$1 "  $dirDestFiles/db.$3 > $tmpFile
   /bin/cp -f $tmpFile $dirDestFiles/db.$3
   /bin/rm -f $tmpFile 2>/dev/null
fi

DirNetwork=$(echo "$3" | perl -ne 'print "$3.$2.$1" if($_=~m/(\d+)\.(\d+)\.(\d+)\.in-addr/)' )

# Comprobar la operacion que debemos hacer...
if [ "delete" = "$5" ]
then
   # Es un borrado 
   /usr/bin/sudo /usr/local/AQLN/bin/bind9-updateDNS-inversa.sh >/dev/null 2>&1 $2 $DirNetwork.$1 $4.educarm.net -delete
elif  [ "add" = "$5" ]
then
   # Es un agregado... lo tenemos que añadir al fichero...
   printf "%-8s PTR   %s.%s.educarm.net.\n" $1 $2 $4  >> $dirDestFiles/db.$3
   /usr/bin/sudo /usr/local/AQLN/bin/bind9-updateDNS-inversa.sh >/dev/null 2>&1 $2 $DirNetwork.$1 $4.educarm.net 
fi
echo -n "[OK]"

